As a result of advances in audio compression, availability of broadband Internet access at home and the popularity of electronic music distribution systems, users can now acquire and store ever-increasing number of audio files in their local databases. Moreover, consumer-devices with mass random-access storage and sophisticated rendering capabilities make the whole electronic music database available for instant playback. As opposed to traditional music playback where only a limited number of songs are manually selected, there is a strong need for intelligent playlist generation techniques that utilize the whole database while taking the user's interests into account. Moreover, it is desirable to present these songs in a seamlessly streaming manner with smooth transitions. Automatic audio mixing and playback systems which provide smooth transitions between songs are known and commonly referred to as AutoDJ.
An AutoDJ is a software function in a consumer hardware platform that has “knowledge” of music and can thus choose and mix songs from a given database. AutoDJ is not a tool that is used by human DJs to perform audio mixing, it is rather a replacement for the human DJ and operates with minimal intervention.
An AutoDJ does not provide mere crossfade transitions but is capable of applying different types of transitions depending on the audio content and the user preferences. An AutoDJ can be divided into two parts: (1) generating playlists, sorting songs according to their degree of likeness, i.e., it has some “knowledge of music”; and (2) mixing consecutive songs and playing the mix. Mixing the songs includes the steps of computing the type and size of the transition, determining the exact mixing points and playing the music. Such AutoDJ systems offer complex sound processing functionality to realize various transitions between consecutive tracks (e.g. equalization of tempo and synchronization of beat phase) as well as analysis of consecutive tracks. It determines a transition based on straightforward criteria, then executes the transition.
There are a number of existing products that perform automatic audio mixing, for example Bpm DJ and DJ Mix Pro. Bpm DJ is a closed system where predefined playlists are mixed at live events. The predefined mixes are based on different genres. For examples choice include South Dakota wedding SJ mix, a Sioux Falls, Brookings mix, Chamberlain mix, or Watertown event mix or prom, school dance, party etc. These are all based on a known database and playlists. However, this approach requires a prior knowledge of the songs and will only operate with predefined collection of songs. DJ Mix Pro provides more flexibility in its choice of playlist and performs beat mixing based on the input playlist to a certain extent. However, it lacks the ability to determine important song semantics such as phrase boundaries. Automatically mixing songs to create seamless transitions between two songs is also disclosed in US2003/0183964. A drawback of the known automatic mixing methods is that the created mix transitions are often short or of poor quality.